home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / c / hce.lha / HCE / include / clib / stdio.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-09-02  |  4.2 KB  |  164 lines

  1. /*
  2.  *
  3.  *    STDIO.H       Standard i/o include file
  4.  *
  5.  * 1993.
  6.  * Modified by Jason Petty. 
  7.  * Changes marked with VANSOFT. 
  8.  */
  9.  
  10. #ifndef STDIO_H
  11. #define STDIO_H
  12.  
  13. #ifndef STDDEF_H
  14. #include <clib/stddef.h>
  15. #endif
  16.  
  17. #ifndef STDLIB_H            /* VANSOFT. */
  18. #include <clib/stdlib.h>    /* Prototypes of misc.lib functions. */
  19. #endif
  20.  
  21. /*
  22.  * CONSTANTS:
  23.  */
  24.  
  25. #define _NFILE  (20)   /* maximum number of open streams    */
  26. #define OPEN_MAX _NFILE   /* ANSI equivalent (replaces _NFILE) */
  27. #define FILENAME_MAX (128)   /* maximum filename size             */
  28. #define BUFSIZ  (1024)   /* default buffer size               */
  29. #define EOF  (-1)   /* end-of-file indicator             */
  30. #define EOS  '\0'   /* end-of-string indicator           */
  31.  
  32. #define RAND_MAX (0x7FFF)  /* maximum value from rand()         */
  33.  
  34. #ifndef ERROR
  35. #define ERROR  (-1)   /* general error condition */
  36. #endif
  37.  
  38. /* lseek() origins */
  39. #define SEEK_SET 0   /* from beginning of file */
  40. #define SEEK_CUR 1   /* from current location  */
  41. #define SEEK_END 2   /* from end of file       */
  42.  
  43. /* cfg_ch() control flags */
  44. #define _CIOB  0x01   /* use bios rather than gemdos */
  45. #define _CIOCH  0x02   /* return only 8-bit values    */
  46. #define _CIOVT  0x04   /* process vt52 escape codes   */
  47.  
  48. /* FILE structure flags */
  49. #define _IOREAD  0x0001   /* file may be read from       */
  50. #define _IOWRT  0x0002   /* file may be written to      */
  51. #define _IOBIN  0x0004   /* file is in "binary" mode    */
  52. #define _IODEV  0x0008   /* file is a character device  */
  53. #define _IORW  0x0080   /* last i/o was 0:read/1:write */
  54. #define _IOFBF  0x0100   /* i/o is fully buffered       */
  55. #define _IOLBF  0x0100   /* i/o is line buffered        */
  56. #define _IONBF  0x0400   /* i/o is not buffered         */
  57. #define _IOMYBUF 0x0800   /* standard buffer             */
  58. #define _IOEOF  0x1000   /* EOF has been reached        */
  59. #define _IOERR  0x4000   /* an error has occured        */
  60.  
  61. typedef struct     /* FILE structure          */
  62.  {
  63.  int  _cnt;   /* # of bytes in buffer    */
  64.  unsigned char *_ptr;   /* current buffer pointer  */
  65.  unsigned char *_base;   /* base of file buffer     */
  66.  unsigned int _flag;   /* file status flags       */
  67.  int  _file;   /* file handle             */
  68.  int  _bsiz;   /* buffer size             */
  69.  unsigned char _ch;   /* tiny buffer, for "unbuffered" i/o */
  70.  } FILE;
  71.  
  72. #define L_tmpnam 128
  73. #define TMP_MAX  1000
  74.  
  75. extern char *etext;
  76. extern char *edata;
  77. extern char *end;
  78.  
  79. extern void _exit();
  80. extern FILE _iob[];
  81.  
  82. /* standard streams */
  83. #define stdin (&_iob[0])
  84. #define stdout (&_iob[1])
  85. #define stderr (&_iob[2])
  86.  
  87. /* stream macros */
  88. #define clearerr(fp) ((void) ((fp)->_flag &= ~(_IOERR|_IOEOF)))
  89. #define feof(fp) ((fp)->_flag & _IOEOF)
  90. #define ferror(fp) ((fp)->_flag & _IOERR)
  91. #define fileno(fp) ((fp)->_file)
  92.  
  93. /* compatibility macros */
  94. #define sync()   /* sync() not possible, no operation */
  95.  
  96. /* aliases */
  97. #define getc   fgetc
  98. #define ungetc   fungetc
  99. #define putc   fputc
  100. #define getchar()  fgetc(stdin)
  101. #define ungetchar(c)  fungetc((c),stdin)
  102. #define putchar(c)  fputc((c),stdout)
  103. #define fexists   exists
  104. #define exists(f)  access(f,0x00)
  105. #define forkv(prog,args) forkve(prog,args,NULL)
  106. #define forkvp(prog,args) forkvpe(prog,args,NULL)
  107.  
  108.  
  109. /* Stdio library prototypes. VANSOFT. */
  110.  
  111. extern void closeall(), rewind(), setbuf(), setvbuf(), perror();
  112.  
  113. extern FILE *fdopen();
  114. extern FILE *fopen();
  115. extern FILE *freopen();
  116. extern FILE *_fopen();
  117.  
  118. extern int access();
  119. extern int creat();
  120. extern int fclose();
  121. extern int fflush();
  122. extern int fgetc();
  123. extern int fungetc();
  124. extern int fputc();
  125. extern int fputs();
  126. extern int puts();
  127. extern int fread();
  128. extern int fgetpos();
  129. extern int fsetpos();
  130. extern int fwrite();
  131. extern int fseek();
  132. extern int getw();
  133. extern int isatty();
  134. extern int open();
  135. extern int close();
  136. extern int read();
  137. extern int remove();
  138. extern int unlink();
  139. extern int rename();
  140. extern int rmdir();
  141. extern int write();
  142.  
  143. extern int sgetc();
  144. extern int sungetc();
  145. extern unsigned int sputc();
  146.  
  147. extern long fprintf();
  148. extern long vfprintf();
  149. extern long printf();
  150. extern long vprintf();
  151. extern long fscanf();
  152. extern long scanf();
  153. extern long getl();
  154. extern long putl();
  155. extern long lseek();
  156. extern long tell();
  157. extern long sscanf();
  158. extern long fsize();
  159.  
  160. extern char *gets();
  161. extern char *strerror();
  162.  
  163. #endif
  164.